/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package systole.persistence.brokersInterface;

import java.util.List;
import systole.domain.persons.profession.Profession;
import systole.exceptions.ExceptionDAO;
import systole.synchronization.remote.entities.ProfessionRemote;

/**
 *
 * @author Juan
 */
public interface ProfessionSyncBroker {


      /**
     *
     * @param professionRemote
     * @throws ExceptionDAO
     */
    public void saveProfessionRemote(ProfessionRemote professionRemote) throws ExceptionDAO;

    /**
     *
     * @return ProfessionRemote list
     * @throws ExceptionDAO
     */
    public List<ProfessionRemote> getProfessionsToUpdate() throws ExceptionDAO;

    /**
     *
     * @return
     * @throws ExceptionDAO
     */
    public List<Profession> getProfessionsToUpload() throws ExceptionDAO;

    /**
     *
     * @param remoteId
     * @return
     * @throws ExceptionDAO
     */
    public Profession getProfessionByRemoteId(int remoteId) throws ExceptionDAO;

    /**
     *
     * @param profession
     * @return
     * @throws ExceptionDAO
     */
    public ProfessionRemote getProfessionRemoteByProfession(Profession profession) throws ExceptionDAO;

    /**
     *
     * @return
     * @throws ExceptionDAO
     */
     public int getLastRemoteProfessionIdSynchronized() throws ExceptionDAO;

}
